Various electronic devices offer a multitude of features that have to share the same resources, for instance a single audio output.
In the case of mobile phones, for example, new features are continuously introduced on top of traditional telephony functionality. As a result, emerging mobile phones and other mobile devices have to cope with complex multimedia use cases and complex requirements for concurrent media consumption. Each client managing a respective feature may request for instance some combination of playback and/or record, effects, input and output routing and volume, etc., while other clients are still active.
A rich set of features may thus result in unpredictable use cases that cannot be resolved using simple priority based decisions. A priority value provided by a respective client is not suited to include sufficient information to resolve complex use cases, since appropriate priority values vary from one use case to the next. A client, however, is not aware of any ongoing activity caused by other clients in the device, and thus, the client itself is not able to deduce the proper priority value that should be used.
It has therefore been proposed to pass in addition to a priority value an additional value or a set of additional values, for instance a priority preference value. The priority value and the additional value or set of values can then be evaluated by means of some software code or by hard coding.
According to the “Series 60 3rd Edition SDK for Symbian OS, Beta Release”, for example, the TMdaPriorityPreference iPref is a priority preference that expresses the nature of the priority that can be none, time (or speed), quality or both time and quality. If this is set to EMdaPriorityPreferenceTime then the audio data is time sensitive. The playback operation fails if it cannot happen when requested but degraded output such as mixing or muting is allowed. If this is set to EMdaPriorityPreferenceQuality then the audio data must be played at the best possible quality (for example, it must not be degraded by muting or mixing). The playback operation is delayed until the sound device is available for exclusive use. If this is set to EMdaPriorityPreferenceTimeAndQuality then the audio data is both time and quality sensitive. The playback operation fails if it cannot happen immediately at the highest quality.
Still, conventional components responsible for managing concurrent media consumption use-cases are complicated and difficult to maintain and extend.
On the one hand, the large number of situations that may occur during the operation of an electronic device are nearly impossible to estimate during development time, thus it is difficult to cover all use cases. Also later fixes and changes to the resource access control are difficult to incorporate, as they require changes to the software code or even to a hard coding, and as understanding and foreseeing the effects of a change in all possible situations is difficult, if not impossible.
Therefore an improved technique for resolving these conflicts and managing the behavior is needed.